﻿/*************************************************
Filename:ProtoPackage.h
Author:宋先
Version:
Date:2019/3/8
Description:
1.本文件主要是protobuf协议包的包体操作，根据需要自己编写
*************************************************/

#ifndef __PROTO_PACKAGE_H
#define __PROTO_PACKAGE_H

#include <vector>
#include <string>

#include "define.h"
#include "Buf.h"
class CProtoPackage
{
public:			
	/**
	 * @brief 心跳组包
	 * @param SBuf*  rsp			缓冲区	 
	 * @return 无
	 * @note 注意
	 * @see  
	 */
	static void PackHeartbeatReqMsg(OUT SBuf*  rsp);
	/**
	 * @brief 心跳应答组包 
	 * @param 形参 参数说明
	 * @param 形参 参数说明
	 * @return 无
	 * @note 注意
	 * @see  
	 */
	static void PackHeartbeatRspMsg(IN std::string strSeqId, uint16_t retCode,OUT SBuf*  rsp);
	/**
	 * @brief 设备管理服务注册请求组包 
	 * @param uint64_t deviceManageId	设备管理服务id
	 * @param SBuf*  rsp	缓冲区指针
	 * @return 无
	 * @note 注意
	 * @see  
	 */
	static void PackDevMngSvrRegisteMsg(IN uint64_t moudleid, IN uint64_t deviceManageId, OUT SBuf*  rsp);
	/**
	 * @brief 设备管理服务注册应答组包 
	 * @param 形参 参数说明
	 * @param 形参 参数说明
	 * @return 无
	 * @note 注意
	 * @see  
	 */
	static void PackDevMngSvrRegisterRspMsg(IN std::string strSeqId, IN uint16_t retCode, OUT SBuf*  rsp);
	/**
	 * @brief 后端服务注册应答组包 
	 * @param 形参 参数说明
	 * @param 形参 参数说明
	 * @return 无
	 * @note 注意
	 * @see  
	 */
	static void PackBackSvrRegisterRspMsg(IN std::string strSeqId, IN uint16_t retCode, OUT SBuf*  rsp);
	/**
	 * @brief 后端服务注册请求组包 
	 * @param 形参 参数说明
	 * @param 形参 参数说明
	 * @return 无
	 * @note 注意
	 * @see  
	 */
	static void PackBackSvrRegisterMsg(IN uint64_t moudleid, OUT SBuf*  rsp);

	static void PackStopVedioUploadReq(IN uint64_t moudleid,IN uint64_t sessionid, OUT SBuf*  rsp);
	static void PackStopVedioUploadRsp(IN uint64_t sessionid,IN std::string strSeqId, IN uint16_t retCode, OUT SBuf*  rsp);
	static void PackFileCheckReq(IN uint64_t moudleid, OUT SBuf*  rsp);
public:
	CProtoPackage();
	~CProtoPackage();
};

#endif